package com.jinyang.jetpackdemo.annotation;

import android.app.Activity;

import java.lang.reflect.Method;

/**
 * @Author: LiuJinYang
 * @CreateDate: 2021/11/10
 * 仿造ButterKnife，在App模块下新建一个ButterKnife类，利用反射来调用上面方法
 */
public class LjyButterKnife {
    public static void bind(Activity target) {
        try {
            Class<?> clazz = target.getClass();
            // 反射获取apt生成的指定类
            Class<?> bindViewClass = Class.forName(clazz.getName() + "__ViewBinding");
            // 获取它的方法
            Method method = bindViewClass.getMethod("bind", clazz);
            // 执行方法
            method.invoke(bindViewClass.newInstance(), target);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}